package org.jeecg.modules.htxincailiao.account.domain.bo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecg.common.util.SmartVerificationUtil;
import org.jeecg.modules.htxincailiao.account.constant.HTAccountTypeEnum;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;


@Data
public class HTAccountUpgradeBO {

    /**
     * 用户ID
     */
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "用户ID")
    private String id;

    @NotNull(message = "用户类型不能为空")
    @ApiModelProperty(value = "账户类型:-0-后台用户 1-平台会员 2-问答专家（专题问答） 3-平台商户 4-评估机构 5-产业联盟 6-产业联盟成员 7-产业联盟理事会成员 8-产业联盟专家咨委员会成员 9-产业联盟秘书处成员")
    private HTAccountTypeEnum accountType;

    @NotNull(message = "用户类型不能为空")
    @ApiModelProperty(value = "账户类型:-0-后台用户 1-平台会员 2-问答专家（专题问答） 3-平台商户 4-评估机构 5-产业联盟 6-产业联盟成员 7-产业联盟理事会成员 8-产业联盟专家咨委员会成员 9-产业联盟秘书处成员")
    private HTAccountTypeEnum currentAccountType;

    @NotNull(message = "用户类型不能为空")
    @ApiModelProperty(value = "账户类型:-0-后台用户 1-平台会员 2-问答专家（专题问答） 3-平台商户 4-评估机构 5-产业联盟 6-产业联盟成员 7-产业联盟理事会成员 8-产业联盟专家咨委员会成员 9-产业联盟秘书处成员")
    private HTAccountTypeEnum upgradeAccountType;

    /**注册渠道(0-PC，1-公众号，2-后台）*/
//	@Excel(name = "注册渠道(0-PC，1-公众号，2-后台）", width = 15, dicCode = "sign_up_channel")
    @Dict(dicCode = "sign_up_channel")
    @ApiModelProperty(value = "注册渠道(0-PC，1-公众号，2-后台）")
    private Integer channel;

    /**腾讯账号ID（管理腾讯平台账户体系）*/
//	@Excel(name = "腾讯账号ID（管理腾讯平台账户体系）", width = 15)
    @ApiModelProperty(value = "腾讯账号ID（管理腾讯平台账户体系）")
    private String tencentAccountId;

    /**手机号*/
    @NotNull(message = "手机号不能为空")
    @Pattern(regexp = SmartVerificationUtil.PHONE_REGEXP, message = "手机号格式不正确")
    @ApiModelProperty(value = "手机号")
    private String phoneNumber;

    /**
     * 邮箱
     */
    @Excel(name = "邮箱", width = 15)
    @ApiModelProperty(value = "邮箱")
    private String email;

    /**邮编*/
    @Excel(name = "邮编", width = 15)
    @ApiModelProperty(value = "邮编")
    private String zipcode;

    /**
     * 用户名
     */
    @NotNull(message = "用户名不能为空")
    @ApiModelProperty(value = "用户名")
    private String username;


    /**
     * 姓名
     */
    @ApiModelProperty(value = "姓名")
    private String realName;

    /**参会人员*/
    @Excel(name = "参会人员", width = 15)
    @ApiModelProperty(value = "参会人员")
    private String participant;

    @TableField(exist = false)
    /**联系人*/
    @Excel(name = "联系人", width = 15)
    @ApiModelProperty(value = "联系人")
    private String contactPerson;

    @TableField(exist = false)
    /**手机电话*/
    @Excel(name = "手机电话", width = 15)
    @ApiModelProperty(value = "手机电话")
    private String contactPhoneNumber;


    /**密码(必须包含大小写字母和数字的组合，可以使用特殊字符(~!@#$%^&*)，长度在8-32之间)*/
    @Excel(name = "密码(必须包含大小写字母和数字的组合，可以使用特殊字符(~!@#$%^&*)，长度在8-32之间)", width = 15)
    @ApiModelProperty(value = "密码(必须包含大小写字母和数字的组合，可以使用特殊字符(~!@#$%^&*)，长度在8-32之间)")
    private String password;

    /**密码盐*/
    @Excel(name = "密码盐", width = 15)
    @ApiModelProperty(value = "密码盐")
    private String salt;

    /**
     * 昵称
     */
    @ApiModelProperty(value = "昵称")
    private String nickname;


    /**
     * 工号
     */
    @ApiModelProperty(value = "工号")
    private String workNumber;


    /**
     * 头像
     */
    @ApiModelProperty(value = "头像")
    private String avatar;

    /**
     * 性别
     */
    @Dict(dicCode = "sex")
    @ApiModelProperty(value = "性别")
    private Integer gender;

    /**
     * 生日
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "生日")
    private java.util.Date birthday;

    /**
     * 职位
     */
    @ApiModelProperty(value = "职位")
    private String position;


    /**
     * 简介
     */
    @ApiModelProperty(value = "简介")
    private String introduction;

    /**
     * 经营模式
     */
    @Excel(name = "经营模式", width = 15, dictTable = "ht_business_model_category", dicText = "name", dicCode = "id")
    @Dict(dictTable = "ht_business_model_category", dicText = "name", dicCode = "id")
    @ApiModelProperty(value = "经营模式")
    private String businessModelId;
    /**
     * 注册资金
     */
    @Excel(name = "注册资金", width = 15)
    @ApiModelProperty(value = "注册资金")
    private String registeredCapital;

    /**
     * 年营业额
     */
    @Excel(name = "年营业额", width = 15)
    @ApiModelProperty(value = "年营业额")
    private String yearlyTurnover;

    /**
     * 是否冻结
     */
    @Dict(dicCode = "is_locked")
    @ApiModelProperty(value = "是否冻结")
    private Integer isLocked;

    /**
     * 审核状态
     */
    @Excel(name = "审核状态", width = 15, dicCode = "audit_status")
    @Dict(dicCode = "audit_status")
    @ApiModelProperty(value = "审核状态")
    private Integer auditStatus;

    /**
     * 逻辑删除：1表示删除，0表示未删除。
     */
    @ApiModelProperty(value = "逻辑删除：1表示删除，0表示未删除。")
    private boolean isDeleted;

    /**
     * 企业名
     */
    @ApiModelProperty(value = "企业名")
    private String enterpriseName;

    /**
     * 所属机构
     */
    @Excel(name = "所属机构", width = 15)
    @ApiModelProperty(value = "所属机构")
    private String agencyName;

    /**
     * forums分类ID
     */
    @Excel(name = "forums分类ID", width = 15, dictTable = "ht_forums_category", dicText = "name", dicCode = "id")
    @Dict(dictTable = "ht_forums_category", dicText = "name", dicCode = "id")
    @ApiModelProperty(value = "forums分类ID")
    private String forumsCategoryId;

    /**
     * 开户银行
     */
    @ApiModelProperty(value = "开户银行")
    private String bankAccountName;

    /**
     * 银行账号
     */
    @ApiModelProperty(value = "银行账号")
    private String bankAccountNum;

    /**
     * 税号
     */
    @ApiModelProperty(value = "税号")
    private String taxId;

    /**
     * 机构Logo
     */
    @ApiModelProperty(value = "机构Logo")
    private String logo;

    /**
     * 企业主图
     */
    @ApiModelProperty(value = "企业主图")
    private String cover;


    /**
     * 行业分类ID
     */
    @Excel(name = "行业分类ID", width = 15, dictTable = "ht_industry_category", dicText = "name", dicCode = "id")
    @Dict(dictTable = "ht_industry_category", dicText = "name", dicCode = "id")
    @ApiModelProperty(value = "行业分类ID")
    private String industryCategoryId;

    /**
     * 资质证件
     */
    @Excel(name = "资质证件/营业执照", width = 15)
    @ApiModelProperty(value = "资质证件/营业执照")
    private String certificate;



    /**
     * 其他资质
     */
    @Excel(name = "其他资质", width = 15)
    @ApiModelProperty(value = "其他资质")
    private String otherCertificates;

    private String merchantId;

    /**后台账号ID*/
//	@Excel(name = "后台账号ID", width = 15)
    @ApiModelProperty(value = "后台账号ID")
    private String sysUserId;



    /**联盟ID*/
    @Excel(name = "联盟ID", width = 15, dictTable = "ht_alliance", dicText = "enterprise_name", dicCode = "id")
    @Dict(dictTable = "ht_alliance", dicText = "enterprise_name", dicCode = "id")
    @ApiModelProperty(value = "联盟ID")
    private String allianceId;

}
